iT邦幫忙

2026 iThome 鐵人賽

DAY 26
0
AI Engineering

和 AI 一同打造個人專用知識庫:從零散資料到可運用的知識系列 第 26 篇

Day 26|創建知識庫之旅:有備份,那麼整份資料就找得回來嗎?

  • 分享至 

  • xImage
  •  

雖然我知道知識庫有備份。資料放在雲端,家中的電腦會定期把資料庫抓回來,C 槽和 D 槽各留一份。

但我後來想確認的,不只是家裡有沒有備份檔。如果雲端主機出了問題,我拿著那些檔案,能不能把整份知識庫找回來?我可以接受最近幾個小時,必要時半天左右的資料有異狀;已經存下來的內容,還是希望盡量不要漏。

這次沒有真的發生資料遺失。我只是開始擔心備份範圍夠不夠,所以請 AI 協助我查看目前的排程、備份檔和知識庫存檔的方式。

先確認備份是不是真的有留下來

目前是家中的電腦透過私有網路,定期從雲端主機複製資料庫。
雲端和家中是兩個地方,所以這應該算是一份資料庫的異地副本吧?

查核時,排程最近一次執行成功,C、D 兩處也都有備份檔。
檔案能打開,資料庫檢查沒有報錯;條目、摘要、標籤、關聯和向量資料都能查到。
當時拿備份檔與正式主機的資料庫主檔比對,結果也相同。

我至少知道,家中的備份不是一個只有檔名、內容卻讀不出來的檔案。
不過這次做的是檔案檢查與比對,還不是把知識庫從備份重新架起來。

另外,C 槽和 D 槽雖然各有一份,兩者仍在同一台家中電腦上。它們是雲端資料庫在家中的副本,不是兩個分處不同地點的備份點。

每小時執行,不等於每小時都有一個版本

我原本看到的是「每小時執行備份」。看腳本後才知道,檔名是依日期產生的:同一天再次執行時,會更新當天那份檔案。手上可以往回找不同日期的版本,但不能從今天的檔案中任選上午、下午各個時間點。

這在雲端主機整個無法使用時,和想找回「某次修改之前的內容」時,影響不一樣。前者看的是最近一次副本留下了多少;後者還得看想要的舊內容,有沒有留在某個尚未被更新的版本裡。

夜間有一段時間沒有新備份紀錄,原因我知道。這篇先把它如實記下;我比較想往下查的是:即使某次備份成功了,那份檔案到底包含哪些資料?

資料庫裡有文字,原始附件放在另一處

繼續查下去,我發現知識庫把兩種東西放在不同地方。條目文字、摘要、標籤和關聯在資料庫裡;我上傳的原始檔案,則存在主機的上傳資料夾。資料庫會記錄檔案的位置,但不等於把整份原檔裝進資料庫。

目前的備份腳本只複製資料庫,沒有複製上傳資料夾。這次查核時,正式主機上的原檔仍在,沒有遺失。但假如將來只剩家中的備份,我能找回條目中保留的文字,卻無法從那份備份拿回上傳時的完整原檔。

這兩者對我來說不能直接畫上等號。從檔案擷取出的內容可以拿來搜尋、整理;原檔則保留了我當時上傳的整份資料。我如果想回頭確認原來寫了什麼,不能只因為搜尋得到幾段文字,就認為原檔也保住了。

https://ithelp.ithome.com.tw/upload/images/20261010/20183856V0zjl5ru30.png

現有備份流程。雲端知識庫分成資料庫與上傳的原始附件;目前只有資料庫被複製到家中電腦。圖中標清楚「條目文字仍在備份中」與「原始附件未納入備份」。

還有一個我原先沒注意到的地方:資料庫中有四筆條目記著舊的附件路徑。它們對應的原檔仍在正式主機的上傳資料夾,但照目前程式記錄的路徑去找,會找不到檔案。這不是原檔已經遺失,而是條目指向的位置沒有跟著目前存放的位置調整。就算之後把附件加入備份,也得一起處理這些路徑,才有辦法在還原後正常取回原檔。

我回頭想,當初使用知識庫時,可能主要存的是網址和文字。先替資料庫留副本,也許已經涵蓋那時大部分會用到的內容。不過這只是我現在的回想,沒有紀錄能證明當初是基於這個理由設計備份。檔案上傳功能當時就已存在,不能說成後來才加上去。

備份檔能讀,還需要試過還原

知識庫使用 SQLite。程式運作時,剛寫入的資料有時會先留在資料庫旁的另一個檔案;目前腳本則是直接複製資料庫主檔。這次比對沒有發現備份檔比當下的主檔少資料,但我不能靠一次比對,就認定往後每次複製都能取得完整一致的內容。

對我來說,還原也不只是把檔案放回原處。如果真的要從備份重新使用知識庫,我會想打開一筆熟悉的資料,確認原文和摘要還在、標籤及關聯仍對得上,也要能下載原始附件。這次尚未在隔離環境做過這整段操作,所以目前只能說資料庫備份可讀,不能說完整還原已經驗收。

接下來要補上的部分

這次我和 AI 討論後,先把幾件事記進待做任務:

  • 在正式主機上製作一致的資料庫備份
  • 把上傳原檔和資料庫一起保存
  • 核對並修正舊的附件路徑
  • 再拿一組備份到隔離的位置,實際測試搜尋、關聯和原檔下載

https://ithelp.ithome.com.tw/upload/images/20261010/20183856hoTJrFQ7Fc.png

依序呈現「一致的資料庫備份+原始附件」→「能在還原後找到檔案」→「隔離還原與實際查找」。這是與 AI 討論的改善方案,尚未實作或驗收,目前整理到待做項目中。

我想先把保護的範圍補齊,再確認備份拿出來時真的能用。
至於夜間備份的空窗和要保留多少版本,也會跟著一起調整;目前不能把這些討論中的做法寫成已經完成。

這次查完,我比較清楚家中那份檔案的用途:它保留了知識庫的資料庫,而且這次檢查時內容可讀;我在意的原始附件,還沒有被它一起帶走。接下來要確認的,就是怎麼把兩者一同保存,也能在需要時一同找回來。

一路使用下來,我記下的不只是一個備份問題。有些是測試時發現的缺口,有些是我希望增加的功能;這份清單不能當成「全部都已確認故障」。

  • 存入與版本: 同一個網址再次存入時,先比較原文。內容有變動就讓我選擇覆蓋更新或保留版本;比較不了時直接說明,不自動改寫。
  • 分析與失敗恢復: 讓我看得出資料正在等待、部分完成,還是在哪一步失敗;修正有效內容被誤判為空白、部分成功後沒有補齊,以及重試時可能重複處理的問題。
  • 拆分與補強: 保留原文、子章節和母文的關係,避免拆完只剩一個看不懂的標題。補強前後核對主題與來源,也要避免重送或逾時後把同一段內容附加兩次。
  • 內容是否可信: 把原文、外部資料、AI 的推測、我的待辦,以及真正完成驗證的結果分開。重要說法逐項核對來源;已收錄某個工具,不代表我已安裝或測試成功。
  • 搜尋與關聯: 搜尋時顯示候選資料及其摘要,區分沒找到、查詢失敗和找到候選但還不確定是否切題。關聯說明保持簡短,但要有內容依據,不能只因標籤相同就說兩筆資料可以搭配。
  • 跨入口使用: 繼續確認不同 AI 和工具讀寫同一份知識庫時,看到的內容與操作結果是否一致;新增更清楚的寫入結果查詢,避免「沒收到回覆」就只能猜要不要重送。
  • 專案更新追蹤: 依已討論的輪流方式檢查收錄的開源專案,先顯示更新通知,再整理變動內容。AI 整理的頻率、用量與費用條件還要先確認,不能把檢查次數直接當成模型呼叫次數。
  • 備份與還原: 把資料庫和原始附件一起備份,確認最近一次實際成功的時間,並在隔離環境還原,實際檢查搜尋、關聯與原檔下載。

https://ithelp.ithome.com.tw/upload/images/20261010/20183856LkQK8c3DYg.png


上一篇
Day 25|創建知識庫之旅:目前各個入口以及它的功能
下一篇
Day 27|創建知識庫之旅:創建隔離區試修,成功了才敢動正式版
系列文
和 AI 一同打造個人專用知識庫:從零散資料到可運用的知識 共 28 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言